Soru & Cevap

Android Studio'da oynatma sorunu

01.02.2017 - 10:58

Merhaba arkadaşlar...

Buradan bir arkadaşın büyük yardımlarıyla bir program yapıyoruz. Fakat şöyle bir sorunumuz var...

Ben anasınıfı öğretmeniyim. 4-5 yaş çocuklar için bir test programı yapmaya çalışıyorum. Normalde olması gereken:

1. soru çıkacak. Soruyla birlikte benim önceden hazırladığım ses dosyası açılıp çocuklara soruyu seslendirecek. Çocuk doğru ya da yanlış cevaba tıkladığında sonraki soru açılacak. 2. soruya geçerken 1. soru soundu duracak.
2. soru çıkacak. 1. sorudaki işlem tekrarlanacak. Bu şekilde 10 soru sorulacak. Ve 10 sorunun sonunda 8 ya da daha fazla doğrusu varsa alkış sesi çalacak. Daha az doğrusu varsa tekrar dene sesi çalacak.

Bu söylediklerimin hepsini yaptık. Fakat nedense sorularda bazen ses çalmıyor. Aynı soru ve aynı sound olmasına rağmen bazen sound çalıyor bazen çalmıyor.

Kodlarımız şu şekilde:

class dosyası:

package tr.com.blogspot.etkinlikhavuzu.benimilkogretmenim;

import android.app.Activity;
import android.content.Intent;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.Random;

public class AA extends Activity implements View.OnClickListener {

    TextView soru, sonuc, dogrusayi, yanlissayi;
    ImageView secenek1, secenek2, secenek3;
    ArrayList<Soru> sorular;
    Random random;
    int dogruSayisi, yanlisSayisi, sayac, dogruCevap, kalanSoruSayisi, toplamSorusayisi;
    SoundPool soundPool, soundPoolDogru, soundPoolYanlis;
    int sound, dogruSound, yanlisSound;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.aa);

        init();

        sorulariYukle();
    }

    public void init() {
        secenek1 = (ImageView) findViewById(R.id.secenek1);
        secenek1.setOnClickListener(this);
        secenek2 = (ImageView) findViewById(R.id.secenek2);
        secenek2.setOnClickListener(this);
        secenek3 = (ImageView) findViewById(R.id.secenek3);
        secenek3.setOnClickListener(this);

        soru = (TextView) findViewById(R.id.soru);
        sonuc = (TextView) findViewById(R.id.sonuc);
        dogrusayi = (TextView) findViewById(R.id.dogrusayi);
        yanlissayi = (TextView) findViewById(R.id.yanlissayi);

        sorular = new ArrayList<Soru>();

        random = new Random();

        kalanSoruSayisi = 10;
        toplamSorusayisi= 22;

        soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 100);
        soundPoolDogru = new SoundPool(10, AudioManager.STREAM_MUSIC, 100);
        soundPoolYanlis = new SoundPool(10, AudioManager.STREAM_MUSIC, 100);

        dogruSound = soundPoolDogru.load(this, R.raw.alkis, 1);
        yanlisSound = soundPoolYanlis.load(this, R.raw.tekrar, 1);

    }

    public void sorulariYukle() {
        sorular.add(new Soru("Hangisi Yeşildir?", R.raw.yesil, R.drawable.yesilelma, R.drawable.kirmizielma, R.drawable.kirmizielma, R.drawable.yesilelma));
        sorular.add(new Soru("Hangisi Kırmızıdır?", R.raw.kirmizi, R.drawable.yesilelma, R.drawable.yesilelma, R.drawable.kirmizielma, R.drawable.kirmizielma));
        sorular.add(new Soru("Hangisi Beyazdır?", R.raw.beyaz, R.drawable.beyazsapka, R.drawable.sarisapka, R.drawable.kirmizisapka, R.drawable.beyazsapka));
        sorular.add(new Soru("Hangisi Siyahtır?", R.raw.siyah, R.drawable.pembesapka, R.drawable.siyahsapka, R.drawable.kirmizisapka, R.drawable.siyahsapka));
        sorular.add(new Soru("Hangisi Kırmızıdır?", R.raw.kirmizi, R.drawable.turuncusapka, R.drawable.morsapka, R.drawable.kirmizisapka, R.drawable.kirmizisapka));
        sorular.add(new Soru("Hangisi Mavidir?", R.raw.mavi, R.drawable.yesilsapka, R.drawable.mavisapka, R.drawable.siyahsapka, R.drawable.mavisapka));
        sorular.add(new Soru("Hangisi Sarıdır?", R.raw.sari, R.drawable.beyazsapka, R.drawable.kahvesapka, R.drawable.sarisapka, R.drawable.sarisapka));
        sorular.add(new Soru("Hangisi Yeşildir?", R.raw.yesil, R.drawable.turuncusapka, R.drawable.siyahsapka, R.drawable.yesilsapka, R.drawable.yesilsapka));
        sorular.add(new Soru("Hangisi Turuncudur?", R.raw.turuncu, R.drawable.turuncusapka, R.drawable.kahvesapka, R.drawable.morsapka, R.drawable.turuncusapka));
        sorular.add(new Soru("Hangisi Mordur?", R.raw.mor, R.drawable.beyazsapka, R.drawable.yesilsapka, R.drawable.morsapka, R.drawable.morsapka));
        sorular.add(new Soru("Hangisi Pembedir?", R.raw.pembe, R.drawable.beyazsapka, R.drawable.siyahsapka, R.drawable.pembesapka, R.drawable.pembesapka));
        sorular.add(new Soru("Hangisi Kahverengidir?", R.raw.kahverengi, R.drawable.yesilsapka, R.drawable.pembesapka, R.drawable.kahvesapka, R.drawable.kahvesapka));
        sorular.add(new Soru("Hangisi Beyazdır?", R.raw.beyaz, R.drawable.beyazeldiven, R.drawable.sarieldiven, R.drawable.kirmizieldiven, R.drawable.beyazeldiven));
        sorular.add(new Soru("Hangisi Siyahtır?", R.raw.siyah, R.drawable.pembeeldiven, R.drawable.siyaheldiven, R.drawable.kirmizieldiven, R.drawable.siyaheldiven));
        sorular.add(new Soru("Hangisi Kırmızıdır?", R.raw.kirmizi, R.drawable.turuncueldiven, R.drawable.moreldiven, R.drawable.kirmizieldiven, R.drawable.kirmizieldiven));
        sorular.add(new Soru("Hangisi Mavidir?", R.raw.mavi, R.drawable.yesileldiven, R.drawable.mavieldiven, R.drawable.siyaheldiven, R.drawable.mavieldiven));
        sorular.add(new Soru("Hangisi Sarıdır?", R.raw.sari, R.drawable.beyazeldiven, R.drawable.kahveeldiven, R.drawable.sarieldiven, R.drawable.sarieldiven));
        sorular.add(new Soru("Hangisi Yeşildir?", R.raw.yesil, R.drawable.turuncueldiven, R.drawable.siyaheldiven, R.drawable.yesileldiven, R.drawable.yesileldiven));
        sorular.add(new Soru("Hangisi Turuncudur?", R.raw.turuncu, R.drawable.turuncueldiven, R.drawable.kahveeldiven, R.drawable.moreldiven, R.drawable.turuncueldiven));
        sorular.add(new Soru("Hangisi Mordur?", R.raw.mor, R.drawable.beyazeldiven, R.drawable.yesileldiven, R.drawable.moreldiven, R.drawable.moreldiven));
        sorular.add(new Soru("Hangisi Pembedir?", R.raw.pembe, R.drawable.beyazeldiven, R.drawable.siyaheldiven, R.drawable.pembeeldiven, R.drawable.pembeeldiven));
        sorular.add(new Soru("Hangisi Kahverengidir?", R.raw.kahverengi, R.drawable.yesileldiven, R.drawable.pembeeldiven, R.drawable.kahveeldiven, R.drawable.kahveeldiven));


        sayac = random.nextInt(toplamSorusayisi);
        soru.setText(sorular.get(sayac).getSoru());
        secenek1.setImageResource(sorular.get(sayac).getSecenek1());
        secenek2.setImageResource(sorular.get(sayac).getSecenek2());
        secenek3.setImageResource(sorular.get(sayac).getSecenek3());
        dogruCevap = sorular.get(sayac).getDogruCevap();
        sound = soundPool.load(this, sorular.get(sayac).getSoruSesi(), 1);
        soundPool.play(sound, 1, 1, 0, 0, 1);
    }

    @Override
    public void onClick(View view) {
        soundPool.stop(sound);
        switch (view.getId()) {
            case R.id.secenek1:
                if (dogruCevap == sorular.get(sayac).getSecenek1()) {
                    dogruSayisi++;
                    dogrusayi.setText(String.valueOf(dogruSayisi));
                } else {
                    yanlisSayisi++;
                    yanlissayi.setText(String.valueOf(yanlisSayisi));
                }
                siradakiSoru();
                break;
            case R.id.secenek2:
                if (kalanSoruSayisi == 0) {
                    soundPoolDogru.stop(dogruSound);
                    soundPoolYanlis.stop(yanlisSound);
                    startActivity(new Intent(this, MainActivity.class));
                    finish();
                } else {
                    if (dogruCevap == sorular.get(sayac).getSecenek2()) {
                        dogruSayisi++;
                        dogrusayi.setText(String.valueOf(dogruSayisi));
                    } else {
                        yanlisSayisi++;
                        yanlissayi.setText(String.valueOf(yanlisSayisi));
                    }
                    siradakiSoru();
                }
                break;
            case R.id.secenek3:
                if (dogruCevap == sorular.get(sayac).getSecenek3()) {
                    dogruSayisi++;
                    dogrusayi.setText(String.valueOf(dogruSayisi));
                } else {
                    yanlisSayisi++;
                    yanlissayi.setText(String.valueOf(yanlisSayisi));
                }
                siradakiSoru();
                break;
        }
    }

    public void siradakiSoru() {
        soundPool.stop(sound);
        kalanSoruSayisi--;
        if (kalanSoruSayisi == 0) {
            soru.setText(String.valueOf(dogruSayisi)+" Doğru "+String.valueOf(yanlisSayisi)+" Yanlışın Var!!!");
            sonuc.setText("Test Bitti!!!");
            if (dogruSayisi >= 8) {
                soundPoolDogru.play(dogruSound, 1, 1, 0, 0, 1);
                secenek1.setClickable(false);
                //secenek2.setClickable(false);
                secenek3.setClickable(false);
                secenek1.setImageResource(R.drawable.bos);
                secenek2.setImageResource(R.drawable.alkis);
                secenek3.setImageResource(R.drawable.bos);
            }else{
                soundPoolYanlis.play(yanlisSound, 1, 1, 0, 0, 1);
                secenek1.setClickable(false);
                //secenek2.setClickable(false);
                secenek3.setClickable(false);
                secenek1.setImageResource(R.drawable.bos);
                secenek2.setImageResource(R.drawable.geri);
                secenek3.setImageResource(R.drawable.bos);
            }
        } else {
            sayac = random.nextInt(toplamSorusayisi);
            soru.setText(sorular.get(sayac).getSoru());
            secenek1.setImageResource(sorular.get(sayac).getSecenek1());
            secenek2.setImageResource(sorular.get(sayac).getSecenek2());
            secenek3.setImageResource(sorular.get(sayac).getSecenek3());
            dogruCevap = sorular.get(sayac).getDogruCevap();
            sound = soundPool.load(this, sorular.get(sayac).getSoruSesi(), 1);
            soundPool.play(sound, 1, 1, 0, 0, 1);
        }
    }
}

XML dosyası:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="tr.com.blogspot.etkinlikhavuzu.benimilkogretmenim.MainActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="30dp">

        <Button
            android:id="@+id/dogru"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:background="@drawable/dogru" />

        <Button
            android:id="@+id/yanlis"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/dogru"
            android:layout_marginTop="10dp"
            android:background="@drawable/yanlis" />

        <TextView
            android:id="@+id/dogrusayi"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:layout_above="@+id/yanlis"
            android:layout_toEndOf="@+id/dogru"
            android:layout_toRightOf="@+id/dogru"
            android:gravity="center"
            android:text="0"
            android:textColor="#006600"
            android:textSize="30sp" />

        <TextView
            android:id="@+id/yanlissayi"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:layout_alignBottom="@+id/yanlis"
            android:layout_toEndOf="@+id/yanlis"
            android:layout_toRightOf="@+id/yanlis"
            android:gravity="center"
            android:text="0"
            android:textColor="#990000"
            android:textSize="30sp" />
        <ImageView
            android:id="@+id/secenek1"
            android:layout_width="170dp"
            android:layout_height="170dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
        <ImageView
            android:id="@+id/secenek2"
            android:layout_width="170dp"
            android:layout_height="170dp"
            android:layout_alignBottom="@+id/secenek1"
            android:layout_centerHorizontal="true" />
        <ImageView
            android:id="@+id/secenek3"
            android:layout_width="170dp"
            android:layout_height="170dp"
            android:layout_alignBottom="@+id/secenek2"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true" />

        <TextView
            android:id="@+id/soru"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/secenek2"
            android:layout_marginBottom="18dp"
            android:layout_toEndOf="@+id/dogrusayi"
            android:layout_toRightOf="@+id/dogrusayi"
            android:gravity="center"
            android:text=""
            android:textColor="#000000"
            android:textSize="40sp"
            android:textStyle="bold|italic" />

        <TextView
            android:text=""
            android:textColor="#000000"
            android:textSize="40sp"
            android:textStyle="bold|italic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/sonuc"
            android:layout_above="@+id/soru"
            android:layout_toRightOf="@+id/yanlissayi"
            android:layout_toEndOf="@+id/yanlissayi" />

    </RelativeLayout>
</RelativeLayout>


 

24 Görüntülenme

0 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.